package com.newjiabo.ski.domain;

import java.util.Date;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.newjiabo.common.annotation.Excel;
import com.newjiabo.common.core.domain.BaseEntity;
import org.springframework.format.annotation.DateTimeFormat;

/**
 * 约拍订单对象 ski_order_shoot
 *
 * @author CaoMengHui
 * @date 2023-10-23
 */
@ApiModel(value = "约拍订单")
public class SkiOrderShoot extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    private String id;

    /**
     * 商户订单号
     */
    @ApiModelProperty(value = "商户订单号")
    @Excel(name = "商户订单号")
    private String outTradeNo;

    /**
     * 雪场id
     */
    @ApiModelProperty(value = "雪场id")
    @Excel(name = "雪场id")
    private String mealSnowId;

    /**
     * 摄影师id
     */
    @ApiModelProperty(value = "摄影师id")
    @Excel(name = "摄影师id")
    private String cameramanId;

    /**
     * 摄影师名称
     */
    @ApiModelProperty(value = "摄影师名称")
    @Excel(name = "摄影师名称")
    private String cameramanName;

    /**
     * 约拍套餐id
     */
    @ApiModelProperty(value = "约拍套餐id")
    @Excel(name = "约拍套餐id")
    private String setMealShootId;

    /**
     * 待支付、已支付、申请退款中、退款驳回、已退款
     * @see com.newjiabo.ski.domain.enums.OrderStatusEnum
     */
    @ApiModelProperty(value = "待支付、已支付、申请退款中、退款驳回、已退款")
    @Excel(name = "待支付、已支付、申请退款中、退款驳回、已退款")
    private String orderStatus;

    /**
     * 会员id
     */
    @ApiModelProperty(value = "会员id")
    @Excel(name = "会员id")
    private String memberId;

    /**
     * 用户描述
     */
    @ApiModelProperty(value = "用户描述")
    @Excel(name = "用户描述")
    private String userDescription;

    /**
     * 用户联系电话
     */
    @ApiModelProperty(value = "用户联系电话")
    @Excel(name = "用户联系电话")
    private String userContactTelephone;

    /**
     * 支付总价格
     */
    @ApiModelProperty(value = "支付总价格")
    @Excel(name = "支付总价格")
    private Double payTotal;

    /**
     * 支付订单号
     */
    @ApiModelProperty(value = "支付订单号")
    @Excel(name = "支付订单号")
    private String payNo;

    /**
     * 商品原始价格
     */
    @ApiModelProperty(value = "商品原始价格")
    @Excel(name = "商品原始价格")
    private Double total;

    /**
     * 下单描述（body）
     */
    @ApiModelProperty(value = "下单描述（body）")
    @Excel(name = "下单描述", readConverterExp = "b=ody")
    private String description;

    /**
     * 下单时间
     */
    @ApiModelProperty(value = "下单时间")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "下单时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date orderTime;

    /**
     * 付款时间
     */
    @ApiModelProperty(value = "付款时间")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "付款时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date payTime;

    /**
     * 订单结束时间
     */
    @ApiModelProperty(value = "订单结束时间")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "订单结束时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date orderEndTime;

    /**
     * 删除标志 true/false 删除/未删除
     */
    @ApiModelProperty(value = "删除标志 true/false 删除/未删除")
    private Boolean delFlag;

    public void setId(String id) {
        this.id = id;
    }

    public String getId() {
        return id;
    }

    public void setOutTradeNo(String outTradeNo) {
        this.outTradeNo = outTradeNo;
    }

    public String getOutTradeNo() {
        return outTradeNo;
    }

    public void setMealSnowId(String mealSnowId) {
        this.mealSnowId = mealSnowId;
    }

    public String getMealSnowId() {
        return mealSnowId;
    }

    public void setCameramanId(String cameramanId) {
        this.cameramanId = cameramanId;
    }

    public String getCameramanId() {
        return cameramanId;
    }

    public void setCameramanName(String cameramanName) {
        this.cameramanName = cameramanName;
    }

    public String getCameramanName() {
        return cameramanName;
    }

    public void setSetMealShootId(String setMealShootId) {
        this.setMealShootId = setMealShootId;
    }

    public String getSetMealShootId() {
        return setMealShootId;
    }

    public void setOrderStatus(String orderStatus) {
        this.orderStatus = orderStatus;
    }

    public String getOrderStatus() {
        return orderStatus;
    }

    public void setMemberId(String memberId) {
        this.memberId = memberId;
    }

    public String getMemberId() {
        return memberId;
    }

    public void setUserDescription(String userDescription) {
        this.userDescription = userDescription;
    }

    public String getUserDescription() {
        return userDescription;
    }

    public void setUserContactTelephone(String userContactTelephone) {
        this.userContactTelephone = userContactTelephone;
    }

    public String getUserContactTelephone() {
        return userContactTelephone;
    }

    public void setPayTotal(Double payTotal) {
        this.payTotal = payTotal;
    }

    public Double getPayTotal() {
        return payTotal;
    }

    public void setPayNo(String payNo) {
        this.payNo = payNo;
    }

    public String getPayNo() {
        return payNo;
    }

    public void setTotal(Double total) {
        this.total = total;
    }

    public Double getTotal() {
        return total;
    }

    public void setDescription(String description) {
        this.description = description;
    }

    public String getDescription() {
        return description;
    }

    public void setOrderTime(Date orderTime) {
        this.orderTime = orderTime;
    }

    public Date getOrderTime() {
        return orderTime;
    }

    public void setPayTime(Date payTime) {
        this.payTime = payTime;
    }

    public Date getPayTime() {
        return payTime;
    }

    public void setOrderEndTime(Date orderEndTime) {
        this.orderEndTime = orderEndTime;
    }

    public Date getOrderEndTime() {
        return orderEndTime;
    }

    public void setDelFlag(Boolean delFlag) {
        this.delFlag = delFlag;
    }

    public Boolean getDelFlag() {
        return delFlag;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("outTradeNo", getOutTradeNo())
                .append("mealSnowId", getMealSnowId())
                .append("cameramanId", getCameramanId())
                .append("cameramanName", getCameramanName())
                .append("setMealShootId", getSetMealShootId())
                .append("orderStatus", getOrderStatus())
                .append("memberId", getMemberId())
                .append("userDescription", getUserDescription())
                .append("userContactTelephone", getUserContactTelephone())
                .append("payTotal", getPayTotal())
                .append("payNo", getPayNo())
                .append("total", getTotal())
                .append("description", getDescription())
                .append("orderTime", getOrderTime())
                .append("payTime", getPayTime())
                .append("orderEndTime", getOrderEndTime())
                .append("createBy", getCreateBy())
                .append("createTime", getCreateTime())
                .append("delFlag", getDelFlag())
                .append("updateBy", getUpdateBy())
                .append("updateTime", getUpdateTime())
                .toString();
    }
}
